/**
 * 解释：实现按钮显示的权限
 * 每个用户信息中都会携带用于的按钮信息
 * 在展示页面时会判断是否有该按钮权限，如果包含某个按钮的权限，则展示该按钮；如果不包含就把按钮删除
 * <el-button type="primary" :icon="Plus" @click="handleAdd" v-has = "'system:user:add'">
 * 在按钮组件里加v-has = "'system:user:add'"
 */

import pinia from "@/stores";
import useUserStore from "@/stores/modules/user";
let userStore = useUserStore(pinia);
export const isHasButton = (app:any) => {
    //全局自定义指令：实现按钮的权限
    app.directive('has', {
        //代表使用这个全局自定义指令的dom|组件挂载完毕的时候会执行一次
        mounted(el:any, options:any) {
            //自定义执行右侧的数值：如果在用户信息buttons数组当中没有，就从dom树上干掉这个按钮
            if (!userStore.buttons.includes(options.value)) {
                el.parentNode.removeChild(el);
            }
        }
    })
}
